package map;

import java.util.HashMap;
import java.util.Map;

/**
 * 统计一个字符串中每个字符出现的次数
 */
public class Test {
    public static void main(String[] args) {
        String line = "i love java! thinking in java!! hello world!";
        /*
           程序执行后输出统计结果
           i:4
           l:4
           o:3
           ...
           字符:出现的次数

           思路:
           设计一个Map，key保存出现的字符，value对应出现的次数
           顺序将字符串中每个字符提取出来，然后使用该字符做为key
           如果这个字符作为key已经在Map中存在了，则value+1
           不存在则说明该字符第一次出现，value=1
         */
        Map<Character,Integer> map = new HashMap<>();
        for(int i=0;i<line.length();i++){
            char c = line.charAt(i);
            if(map.containsKey(c)){
                int num = map.get(c);
                num++;
                map.put(c,num);
            }else{//如果这个key不存在，则说明该字符第一次出现
                map.put(c,1);
            }
        }
        map.forEach((k,v)->System.out.println(k+":"+v));
    }
}
